package com.zhongli.devplatform.service.imp.user;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zhongli.devplatform.dto.student.BindParentDTO;
import com.zhongli.devplatform.dto.student.StudyReportDetailsDTO;
import com.zhongli.devplatform.dto.student.UpdateBindParentDTO;
import com.zhongli.devplatform.dto.user.UserRegisterDTO;
import com.zhongli.devplatform.po.view.ViewUserPO;
import com.zhongli.devplatform.po.user.ReadUserPO;
import com.zhongli.devplatform.query.student.StudentQuery;
import com.zhongli.devplatform.bean.Res;
import com.zhongli.devplatform.vo.student.StudentVO;
import com.zhongli.devplatform.vo.student.UserAndClassInfoVO;
import com.zhongli.devplatform.vo.sys.SubjectVO;

import java.util.List;

public interface ReadUserService extends IService<ReadUserPO> {

    Res register(UserRegisterDTO userRegisterDTO);

    Res forgetPwd(String phone, String verifyCode, String password);

    List<ReadUserPO> getCurrentTeacherFans(Integer currentUserId);

    void updateWeixinId(Integer id, String weixinId);

    List<ViewUserPO> getAllTeacherByCurrentStuGrade(Integer currentUserId, String nickName);

    List<StudentVO> learnCondition(StudentQuery query);

    Res resetPwd(String pwd, String newPwd);

    Res bindParent(BindParentDTO bindParentDTO);

    /**
     * 老师报表 查询所有信息
     * @param studyReportDetailsDTO {@link StudyReportDetailsDTO}
     * @return 学生列表
     */
    List<UserAndClassInfoVO> getAllStudentByCurrentTeach(StudyReportDetailsDTO studyReportDetailsDTO);

    Res studentListByClazzId(StudentQuery studentQuery);

    Res getBindParentInfo();

    // Res studentListByOpeId(StudentQuery studentQuery);
    /**
     * 学生---学习进度雷达图
     * @param studentId  学生id
     * @return  返回values
     */
    List<Integer> radarChart(Integer studentId, List<SubjectVO> subjectVOs);

    Res updateBindParent(UpdateBindParentDTO updateBindParentDTO);

    /**
     * 导入老师im账号
     * @return
     */
    Res importTeacherImUserId();

    // Res studentListByOpeId(StudentQuery studentQuery);
}
